Git Flow for Development Team from 25.11.24

Key Points of the Flow

1. Creating a Task Branch

Each developer creates a separate branch for their task from the main branch . The branch name should follow the existing naming convention. For example:

feature/<issue_number>-<short_description> 
fix/<issue_number>-<short_description> 
hotfix/<issue_number>-<short_description>

2. Working on the Task

The developer makes all necessary changes in their branch. All changes must be documented in the CHANGELOG.md under the [Unreleased] section.

3. Pull Request (PR)

After completing the task, the developer creates a pull request (PR) into main branch. The PR should describe all changes and their impact on the project. The version should not be updated during this merge.

It would be better to have same branch name for all repos.

The links to all PRs must be present in corespondent ticket, it will help to review and test changes with no efforts.

3.1 Code review

At least one developer must review the code.

3.2 Testing feature

The QA speciaalist takes correspondent branches and deploy to his sandbox. Here is instructions

brnch-name.png

Any improvements can be redeployed by tester using previous instructions or by developer via Synchronisation script (in case of minor changes)

Writing autotests

4. Deploy to Stage

  • Once the PR is approved and passes all checks, it can be merged into the main branch.

  • The back-end deployment will be started automatically

  • Deploying CRM and Talent can be ran manually on Build -> Pipeline page

Screenshot 2024-11-25 at 16.49.56.png

  • The marging UI-Lib onto main branch will trigger creating new git tag, than building npm pachage and deploying CRM and Talent. So you don’t have to deploy CRM/Talent manually.

Screenshot 2024-11-25 at 16.47.18.png

5. Deploy to Production

We need to set proper versions of apps.

Back

  • CHANGELOG.md

  • config/version.yml

Ui-lib

  • CHANGELOG.md

  • package.json

Talent

  • CHANGELOG.md

  • package.json

    • version

    • dependencies.@talent/ui-lib

CRM

  • CHANGELOG.md

  • package.json

    • version

    • dependencies.@talent/ui-lib

Eventually we need to create script to automate this process.

We need yml file with versions

script to set these versions to app

Script / button to deploy everything in one command/push-btn


A new branch with the name release/vx.x.x will be created from the main branch.

This merge request updates the version and writes the CHANGELOG. The responsible person must replace the [Unreleased] section with the proper version.

Back-End

The version file needs to be updated

Front-End

The proper version for each project needs to be set in the package.json file.

The exact version of UI-Lib @talent/ui-lib should be set in package.json of CRM and Talent

Follow these instructions Releasing

Example CHANGELOG:

## [vx.x.x] - 2024-07-18 

### Added 
- Feature description #123 (Author) 
  [RT-XXXX] (link to the ticket in Jira)
  
### Changed 
- Updated functionality for XYZ #456 (Author) 
  [RT-XXXX] (link to the ticket in Jira)
  
### Fixed 
- Bug description #789 (Author)
  [RT-XXXX] (link to the ticket in Jira)

Future improvements for current GitFlow will look like this:

Screenshot 2024-11-25 at 16.38.41.png

Comments

Leave a Reply